/*
 * @Description: 表单校验工具
 * @Author: ziwei.ma
 * @Date: 2019-08-16 15:40:26
 * @Last Modified by: ziwei.ma
 * @Last Modified time: 2019-10-15 15:31:18
 */

function verifyStartPoint(startPoint) {
  return new Promise((resolve, reject) => {
    if (!startPoint) {
      let msg = '请选择出发地'
      reject(msg)
    } else {
      resolve(startPoint)
    }
  })
}

function verifyEndPoint(endPoint) {
  return new Promise((resolve, reject) => {
    if (!endPoint) {
      let msg = '请选择目的地'
      reject(msg)
    } else {
      resolve(endPoint)
    }
  })
}

function verifyStationList(stationList) {
  return new Promise((resolve, reject) => {
    stationList.forEach(item => {
      if (!item.ADDRESS) {
        let msg = '请选择停靠点'
        reject(msg)
      }
    })
    resolve(stationList)
  })
}

function verifyStartTime(startTime) {
  return new Promise((resolve, reject) => {
    if (!startTime) {
      let msg = '请选择出发时间'
      reject(msg)
    } else {
      resolve(startTime)
    }
  })
}

function verifyEndTime(endTime) {
  return new Promise((resolve, reject) => {
    if (!endTime) {
      let msg = '请选择结束时间'
      reject(msg)
    } else {
      resolve(endTime)
    }
  })
}

function verifyRightTime(startTime, endTime) {
  console.warn('startTime', startTime)
  console.warn('endTime', endTime)
  return new Promise((resolve, reject) => {
    if (startTime >= endTime) {
      let msg = '结束时间必须大于开始时间'
      reject(msg)
    } else {
      resolve(startTime, endTime)
    }
  })
}

function verifyUserName(userName) {
  return new Promise((resolve, reject) => {
    if (!userName) {
      let msg = '请输入联系人姓名'
      reject(msg)
    } else if (!/^[\u4E00-\u9FA5]+$/.test(userName)) {
      let msg = '请输入正确的联系人姓名'
      reject(msg)
    } else {
      resolve(userName)
    }
  })
}

function verifyUserPhone(userPhone) {
  return new Promise((resolve, reject) => {
    if (!userPhone) {
      let msg = '请输入联系人手机号'
      reject(msg)
    } else if (!/^1[3456789]\d{9}$/.test(userPhone)) {
      let msg = '请输入正确的手机号码'
      reject(msg)
    } else {
      resolve(userPhone)
    }
  })
}

function verifySecondUser(isSecondUser, secondUserName, secondUserPhone) {
  if (isSecondUser) {
    return new Promise((resolve, reject) => {
      if (!secondUserName) {
        let msg = '请输入备选联系人姓名'
        reject(msg)
      } else if (!secondUserPhone) {
        let msg = '请输入备选联系人电话'
        reject(msg)
      } else if (!/^[\u4E00-\u9FA5]+$/.test(secondUserName)) {
        let msg = '请输入正确的备选联系人姓名'
        reject(msg)
      } else if (!/^1[3456789]\d{9}$/.test(secondUserPhone)) {
        let msg = '请输入正确的备选联系人电话'
        reject(msg)
      } else {
        resolve(secondUserName, secondUserPhone)
      }
    })
  }
}

function verifyEMail(isEmail, eMail) {
  if (isEmail) {
    return new Promise((resolve, reject) => {
      if (!eMail) {
        let msg = '请输入邮箱地址'
        reject(msg)
      } else if (
        !/^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/.test(eMail)
      ) {
        let msg = '请输入正确的邮箱地址'
        reject(msg)
      } else {
        resolve(eMail)
      }
    })
  }
}

function verifyAgreement(isCheck) {
  return new Promise((resolve, reject) => {
    if (!isCheck) {
      let msg = '请阅读并同意《用户协议》'
      reject(msg)
    } else {
      resolve(isCheck)
    }
  })
}

export {
  verifyStartPoint,
  verifyEndPoint,
  verifyStationList,
  verifyStartTime,
  verifyEndTime,
  verifyRightTime,
  verifyUserName,
  verifyUserPhone,
  verifySecondUser,
  verifyEMail,
  verifyAgreement
}
